package com.sqsf;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {
    @Test
    public void t(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");
        //正常从spring容器中获取对象
        TargetInterface target= (TargetInterface ) applicationContext.getBean("target");
        //调用方法时 会自动使用代码将增强过的方法进行执行
        target.method();

        //springAOP就是基于springIOC
        //在不修改源代码的情况下 使得对应对应的方法得到"着呢个增强"
        //springAOP原理:动态代理
        //可以理解为创建了一个新的对象 重写了对应的方法实现功能
        //快速搭建代码类似于创建了一个新类 实现了相同的接口
        //然后在方法执行前额外调用增强方法
        //可以理解为有人帮我们在程序运行期间书写了Target2
    }
}
